package com.miyu.system.controller.book;

import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.miyu.system.service.book.SysBookService;
import com.miyu.system.service.rule.SysRuleService;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

/**
 * 系统书控制器
 * @author miyu
 * @date 2022/11/08
 */
@RestController
@RequestMapping("sys-book")
public class SysBookController {

    /** 系统书服务 */
    @Resource
    private SysBookService sysBookService;



    /**
     * 后端管理书籍查询
     * @param param 参数
     * @return {@link JSONArray}
     */
    @RequestMapping("querySysBook")
    public JSONArray querySysBook(@RequestBody JSONObject param){
        return sysBookService.querySysBook(param);
    }

    /**
     * 查询系统书详情
     * @param param 参数
     * @return {@link JSONArray}
     */
    @RequestMapping("querySysDetail")
    public JSONObject querySysBookDetail(@RequestBody JSONObject param){
        return sysBookService.querySysBookDetail(param);
    }

    /**
     * 查询系统书章
     * @param param 参数
     * @return {@link JSONArray}
     */
    @RequestMapping("querySysBookChapter")
    public JSONArray querySysBookChapter(@RequestBody JSONObject param){
        return sysBookService.querySysBookChapter(param);
    }
    /**
     * 查询系统书读者
     * @param param 参数
     * @return {@link JSONObject}
     */
    @RequestMapping("querySysBookReader")
    public JSONObject querySysBookReader(@RequestBody JSONObject param){
        return sysBookService.querySysBookReader(param);
    }

    /**
     * 书籍采集功能
     * @param param 参数
     * @return {@link JSONObject}
     */
    @RequestMapping("collectBook")
    public JSONObject collectBook(@RequestBody JSONObject param){
        return sysBookService.collectBook(param);
    }

    /**
     * 收集书保存
     * @return {@link JSONObject}
     */
    @RequestMapping("collectBookSave")
    public JSONObject collectBookSave(){
        return sysBookService.collectBookSave();
    }

    /**
     * 查询书（爬虫）
     * @return {@link JSONArray}
     */
    @RequestMapping("queryBook")
    public JSONArray queryBook(@RequestBody JSONObject param){
        return sysBookService.queryBook(param);
    }

    /**
     * 查询书详情(爬虫)
     * @param param 参数
     * @return {@link JSONObject}
     */
    @RequestMapping("queryBookDetail")
    public JSONObject queryBookDetail(@RequestBody JSONObject param){
        return sysBookService.queryBookDetail(param);
    }

    /**
     * 查询书章(爬虫)
     * @return {@link JSONArray}
     */
    @RequestMapping("queryBookChapter")
    public JSONArray queryBookChapter(@RequestBody JSONObject param){
        return sysBookService.queryBookChapter(param);
    }

    /**
     * 查询书阅读(爬虫)
     * @param param 参数
     * @return {@link JSONObject}
     */
    @RequestMapping("queryBookReader")
    public JSONObject queryBookReader(@RequestBody JSONObject param){
        return sysBookService.queryBookReader(param);
    }


    /**
     * 规则校验取值
     * @param param 参数
     * @return {@link JSONObject}
     */
    @RequestMapping("checkBookRule")
    public JSONObject checkBookRule(@RequestBody JSONObject param){
        return sysBookService.checkBookRule(param);
    }

    /**
     * 缓存书采集定时任务 不需要再手动触发了
     * @param param 参数
     * @return {@link JSONObject}
     */
    @RequestMapping("saveCacheBookTask")
    public JSONObject saveCacheBookTask(@RequestBody JSONObject param){
        return sysBookService.saveCacheBookTask(param) ;
    }

    /**
     * 收集图书阅读器缓存
     * @return {@link JSONObject}
     */
    @RequestMapping("collectBookReaderCache")
    public JSONObject collectBookReaderCache(){
      return   sysBookService.collectBookReaderCache();
    }
}
